1. Field of the Invention
The present invention relates generally to gamma correction of video intensity values for causing a linear range of video intensity values to be displayed on a cathode ray tube screen as a linear gradation of color intensities.
2. Description of the Related Art
Cathode ray tubes (CRTs) have a nonlinear transfer characteristic, i.e., the reproduced brightness on the CRT screen is a nonlinear function of the control-grid video drive. When display graphics are produced on a workstation it is necessary to compensate for this nonlinearity. The compensation of color intensity values to produce a linear gradation of color intensities in response to a linear range of color intensity values is called gamma correction.
There are several known gamma correction functions, one of which is: EQU y=(x.sup.1/.gamma. -k.sub.2)/k.sub.1
where x is the color intensity value to be displayed, y is the corrected color intensity value, and .gamma., k.sub.1, and k.sub.2 are constants specific to the type of CRT screen used.
A simple method of performing gamma correction on a digitized intensity signal is to translate each of the eight-bit red, green, and blue color intensity values to compensated eight-bit color intensity values using a color lookup table. The lookup table is typically stored in a solid state memory and includes a range of color intensity values, each of which is associated with a corresponding gamma corrected value. The gamma corrected value is derived from the above function and stored in the lookup table.
The gamma corrected values read from the table are converted into analog intensity signals which are applied to a control grid of the CRT. This technique has the advantage of being relatively inexpensive but it is also relatively inaccurate.
While accuracy could be increased by using ten-bit red, green, and blue color intensity values, such a scheme requires more space on an integrated circuit in which a number of video control functions may be implemented.
Another prior art method uses ten-bit color intensity values which are gamma corrected into eight-bit color intensity values that are written to a frame buffer. In this method, gamma correction is performed by using a piece-wise linear approximation of the gamma correction function. The values are read from the frame buffer and are further adjusted in a color lookup table which provides eight-bit color intensity values to a digital-to-analog converter. The first correction by way of the piece-wise linear approximation provides increased accuracy over the eight-bit system with respect to the sampling rate; however, the piece-wise linear approximation is inaccurate enough that additional correction is required by a color lookup table connected to the output of the frame buffer.
When display graphics are produced, it may be necessary to further process color intensity values in the frame buffer. For example, such processing is required when the colors of a background object are blended with the colors of a transparent object in the foreground. When such further processing is required, the gamma corrected color intensity values in the buffer are read therefrom. These values are then generally restored to their uncorrected intensity values using a piece-wise linear approximation of the inverse of the gamma correction function. This process is referred to herein as inverse gamma correction. After inverse gamma correction, additional processing to blend the colors is performed in a conventional fashion thereby creating new color intensity values. The new color intensity values are gamma corrected as described above, and then stored in the frame buffer. The new values are then converted to an analog video drive signal which is used to create a display on the CRT screen.
The prior art method utilizing approximation of the gamma correction function provides improved gamma correction over other techniques but still suffers from disadvantages. For example, there is an increase in the amount of hardware required to implement this method. Additionally, when data is read from the frame buffer for further processing as described above, information is lost. The lost information results from the approximation of the gamma correction and inverse gamma correction functions. In other words, when an uncorrected color intensity value is gamma corrected using this technique and thereafter inverse gamma corrected, the resulting color intensity value is close to, but not necessarily the same as, the original color intensity value.